#pragma once 

#include "Common.h"

// ThreadCache本质是由一个哈希映射的已切分好的块的自由链表构成
class ThreadCache
{
  public:
    // 申请块空间
    void* Allocate(size_t bytes);
    // 释放块空间
    void Deallocate(void* ptr, size_t bytes);
    // 从中心缓存获取块空间
    void* FetchFromCentralCache(size_t index, size_t alignBytes);
  private:
    FreeList _freeLists[NFREELIST];// 哈希桶
};

static _declspec(thread) ThreadCache* pTLSThreadCache = nullptr;
